(async function(){
    const express = require('express');
    const db = require('./db/connect');
    const userModel = require('./db/models/UserModel');
    const md5 = require('md5');
    const setCORS = require('./middlewares/setCORS');
    const loginRouter = require('./routers/loginRouter');
    const userRouter = require('./routers/userRouter');
    const verifyToken = require('./middlewares/verifyToken');
    await db();

    db().then(async (v)=>{

        // 判断数据库中是否已经存在admin用户
        let res =await userModel.findOne({username:'admin'});

        if(res){
            // console.log('已经有admin');
            return;
        }
       
        //添加初始化用户 admin
        userModel.create({
            username: 'admin',
            pwd: md5('111111'), // 对密码进行md5加密
            profile: '/upload/admin.png'
        });


        // 初始化 用户列表 
        for(let i=0;i<20;i++){
            userModel.create({
                username: '0713_'+i,
                pwd: md5('111'), // 对密码进行md5加密
                profile: '/upload/admin.png'
            });
        }


    },()=>{

    })

    const app = express();

    // 使用 允许跨域中间件
    // app.use(setCORS);

    // 配置静态资源目录
    app.use(express.static(__dirname + '/public'))

    // 使用内置的解析2种请求体参数的中间件
    app.use(express.json())
    app.use(express.urlencoded({extended: false}))

    // 添加token验证中间件 - 不要全局使用- 使用到需要的位置
    // app.use(verifyToken);

    // 调用loginRouter路由
    app.use('/admin',loginRouter);

    // 调用userRouter路由
    app.use('/admin',verifyToken,userRouter);

    app.listen('8081',()=>{
        console.log('服务启动成功：8081');
    })
})()

